Apparatus and method for generating behaviour in an object

ABSTRACT

A hierarchical behavioral framework is used to generate and control autonomous and semi-autonomous behavior in an articulate object. A behavioral controller is arranged to receive input associated with a behavioral action, to infer a plurality of behavioral parameter values using the framework, and to generate equivalent behavior in the articulate object using the parameter values when loaded in the behavioral controller to generate output corresponding to the equivalent behavior. The equivalent behavior may reproduce the inputted behavioral action, and/or include one or more other behavioral actions, which may be performed simultaneously or as part of a sequence of actions.

This application is the US national phase of international applicationPCT/GB2004/001301 filed 24 Mar. 2004 which designated the U.S. andclaims benefit of GB 0306875.6, dated 25 Mar. 2003, the entire contentof which is hereby incorporated by reference.

BACKGROUND

1. Technical Field

This invention relates to a method of and apparatus for generatingbehaviour in an object. Although the invention is not limited thereto,one application of particular interest is the generation of autonomousbehaviour conveying body language in a virtual agent or object, forexample an avatar.

2. Related Art

Animated objects, whether virtual (such as an avatar) or robotic (forexample, a pet “toy”) are becoming increasingly sophisticated in theirbehaviour. In particular, there is a consumer demand for more realisticbehaviour by virtual objects such as avatars and animated agents. In thecontext of this invention, an avatar is defined to be a visualrepresentation of a user in a virtual environment, taking anyappropriate form. An animated agent is an intelligent software basedagent used for interactions with a user in a virtual environment, or forinteractive entertainment. Similarly, the animated agent may take anyappropriate form.

When an object is capable of having animated behaviour, it is desirablefor a user who is relatively unskilled in programming to have theability to personalise the object's behaviour. This is particularly sowhen the user is seeking, for example, to create a sense ofindividuality in a group setting, to enhance a role the object isplaying, or to reflect the user's own personality. To make objects moreinteresting to their human users, it is desirable if a personality canbe provided for an object, i.e., if the behaviour can be modified by theuser to have certain traits that the user finds desirable.

To satisfy these demands, the behavioural models used to generate thebehaviour in an animated object are becoming increasingly complex. Thiscreates a conflict when a user relatively unskilled in programmingwishes to modify the behaviour of an object, as they lack the expertiserequired to interface with the complex programs representing thebehavioural model and modify the code underlying the behaviour.

Techniques to generate autonomous behaviour in an object and provideobjects with personality which already known in the art are limited intheir usefulness. Generally, a poor compromise is reached when providingan unskilled individual with suitable means to modify an object'sbehaviour and supporting complex behaviour by the object. This isespecially so if a user wishes to modify the behaviour of an object inreal-time.

Limited means to enable an unskilled user to modify the behaviour of avirtual object such as an avatar are disclosed in the art. For example,in U.S. Pat. No. 5,884,029 “User interaction with intelligent virtualobjects, avatars, which interact with other avatars controlled bydifferent users” by Brush II et al, a method and apparatus enabling auser to program a personality into an intelligent virtual object such asan avatar is disclosed. In this example, an avatar's personality iscreated by enabling the avatar to respond semi-autonomously to externalstimulus using a pre-programmed set of responses. This method is oflimited usefulness for many reasons, in particular as an unskilled useris not able to select which personality traits define the autonomousbehaviour, and also as an unskilled user cannot modify the personalityof an avatar in real-time.

In U.S. Pat. No. 6,212,502 “Modelling and Projecting Emotion andPersonality from a Computer User Interface” by Ball et al, a method isdisclosed which determines the probable emotional state of a user andthen represents the user's emotional behaviour in a personal avatar toenhance the user's experience of a virtual world. This method is oflimited usefulness as the user is not able to intervene and control thebehaviour of the avatar if they wish the avatar's behaviour to differfrom their own.

In U.S. Pat. No. 5,880,731 “Use of avatars with automatic gesturing andbounded interaction in on-line chat session” by Liles et al, a user canselect from a limited menu certain gestures for an avatar to performautonomously when the avatar is otherwise inactive. As the personalitycomprises selected gestures which are automatically displayed from timeto time when the avatar is not performing deliberate actions under thecontrol of the user, no modification to the behaviour is made to enhancethe actions under the intentional control of the user.

The present invention seeks to provide apparatus for and a method ofgenerating autonomous behaviour in an object which obviates and/ormitigates the disadvantages known in the art described hereinabove.

BRIEF SUMMARY

According to a first aspect of the invention there is provided a methodof generating behaviour for an object under the control of a behaviouralcontroller, the method comprising the steps of: receiving inputassociated with a behavioural action; inferring a plurality ofbehavioural parameter values from said input in accordance with abehavioural framework arranged to generate behaviour by the object;deriving output from the inferred plurality of behavioural parametervalues; and generating equivalent behaviour by the object using theoutput derived from the parameter values.

According to a second aspect of the invention, there is provided amethod of inferring a plurality of internal parameter values for abehavioural controller for an object, the method comprising the steps ofreceiving input representing a behavioural action; inferring from saidreceived input a set of at least one output values which corresponds toan equivalent behavioural action by the object; and inferring a valuefor each said plurality of internal parameters from said set of at leastone output values, wherein the value inferred for each said plurality ofinternal parameters produces output by the behavioural controllerresulting in equivalent behaviour to the equivalent behavioural action.

According to a third aspect of the invention, there is provided a methodof generating behaviour in an object, the method comprising inferring aplurality of parameter values for a behavioural controller for an objectaccording to the method of the second aspect, the method furthercomprising: generating said set of output values associated with saidequivalent behaviour using said inferred plurality of parameter values;and causing said articulate object to perform said behaviour.

According to a fourth aspect of the invention, there is provided amethod of controlling the behaviour of an articulate object, the methodcomprising the steps of: assigning a value to a behavioural parameterset associated with a behavioural characteristic of the object using abehavioural design interface arranged to provide input to a behaviouralcontroller for the object, each said behavioural parameter setcomprising at least one parameter affecting the behaviouralcharacteristic; associating each parameter in the parameter set with aparameter value obtained by performing a function on the assigned valuewith a default value defined by a behavioural profile; inputting theparameter value to the behavioural controller for the object; inferringfrom said input, output generated by the behavioural controller;associating the output with a behavioural action by the object; andcausing the object to perform the behavioural action.

According to fifth aspect of the invention, there is provided a computerprogram product comprising a computer program, or a suite of computerprograms, comprising a set of instructions to cause one or morecomputers to perform any one of the method aspects of the invention.

According to a sixth aspect of the invention there is provided apparatuscomprising a behavioural controller arranged to generate behaviour in anobject, the controller comprising: means to receive input associatedwith a behavioural action; means to infer a plurality of behaviouralparameter values from said input in accordance with a behaviouralframework arranged to generate behaviour by the object; means to deriveoutput from the inferred plurality of behavioural parameter values; andmeans to generate equivalent behaviour by the object using the outputderived from the parameter values.

According to a seventh aspect of the invention, there is providedapparatus comprising a behavioural design interface, the interfacecomprising: means arranged to allow the assignment of a value to abehavioural parameter set, the parameter set comprising at least oneparameter value associated with a behavioural characteristic of theobject, wherein the value assigned using the interface is provided asinput to the apparatus according to the sixth aspect.

According to an eighth aspect of the invention, there is provided adevice arranged to have a suite of at least one computer programs storedthereon, the suite of at least one computer programs being executable onthe device so as to cause the device to function as the apparatusaccording to the sixth or seventh aspects of the invention.

According to a ninth aspect of the invention, there is provided anetwork comprising a plurality of computer-type devices arranged to becapable of communicating with each other, at least one of the devicescomprising a device according to the eighth aspect of the invention, theother devices being arranged to remotely access at least part of thesuite of at least computer programs, to enable objects operating withinthe environments of said other devices to be controlled by the suite ofat least one computer programs.

According to a tenth aspect of the invention, there is provided a methodof directly manipulating an object to control its behaviour, the methodcomprising the steps of: manipulating the object to perform abehavioural action; providing input representing the behavioural actionto an output node of a behavioural framework, the output node being alsoarranged to provide output which is used to generate equivalentbehaviour by the object, mapping the input received by the output nodeof the behavioural framework within the framework to derive a set of atleast one parameter values for other behavioural nodes of the framework;inferring from the set of at least one parameter values derived a set ofoutput values which will generate other equivalent behaviour by theobject.

According to an eleventh aspect of the invention, there is provided amethod of generating behaviour in an object under the control of abehavioural controller comprising a framework of nodes, the methodcomprising the steps of: at least one node receiving input associatedwith a behavioural action; each said at least one node mapping receivedinput to output; inferring a plurality of behavioural parameter valuesfor other nodes in the framework using said output; mapping the receivedinput using said inferred behavioural parameter values to provide outputby the behavioural controller which generates equivalent behaviour bythe object.

According to a twelfth aspect of the invention, there is provided amethod of generating behaviour in an object under the control of abehavioural controller, the method comprising the steps of: receivinginput associated with a behaviour action; mapping said received input toa set at least one output values which corresponds to equivalentbehaviour by the object; inferring a plurality of behavioural parametervalues from said set of at least one output values in accordance with abehavioural framework arranged to generate behaviour by the object; andgenerating equivalent behaviour in the object using said parametervalues by loading these into the behavioural controller.

According to a thirteenth aspect of the invention, a virtual environmentis provided in which a plurality of virtual objects are arranged tointeract under the observation of one or more users participating in thevirtual environment, wherein each one of said plurality of virtualobjects in the virtual environment displays semi-autonomous behaviourgenerated using a behavioural system using one or more inputs derivedfrom one or more of the behavioural actions of one or more of the othervirtual objects in the virtual environment.

Preferably, each user participating in the virtual environment is ableto control the semi-autonomous behaviour generated by providing input tothe behavioural system.

Another aspect of the invention provides a platform arranged to supportthe virtual environment of the above aspect, wherein the platformprovides means for one of said one or more users participating in thevirtual environment to provide said input.

Preferably, user provides said input via a displayed behavioural designinterface, the input received being processed by a behaviouralcontroller arranged to control the behaviour generated by saidbehavioural system.

The behavioural system may comprise a behavioural controller accordingto any previous aspect and a behavioural framework according to anyprevious aspect.

Advantageously, the system enables a behavioural translation device fora behavioural controller of an object to be provided, the devicecomprising means to map information representing behaviour conforming toa first culture to behaviour conforming to a second culture. Preferably,the information is received as input by the behavioural controller.Preferably, wherein the information is provided as output by thebehavioural controller.

Advantageously, more complex behaviour may be provided by relativelyunskilled users as the equivalent behaviour by the object may comprisesa plurality of behavioural actions performed in a predeterminedsequence. Even more advantageously, time-varying behavioural parametersmay be incorporated into the behavioural controller to provide morerealistic autonomously animated behaviour.

Advantageously, by having the ability to infer from input internalparameter values which can then be used to generate equivalent actionsby the object, the method of generating behaviour enables relativelysimple data input by a user to generate complex behaviour in the object.

Advantageously, complex behaviour may be generated which may comprisemore than one behavioural action, two or more of which may be performedsimultaneously. For example, the behaviour of an articulate object suchas an avatar may be controlled so that both posture and eye gazebehaviours of the avatar are performed simultaneously. For example, theavatar could automatically look at an object when picking the object up,or alternatively, as another example, if an avatar is timid in responseto another avatar being aggressive, the timid avatar may change bothposture and eye gaze to hunch his/her shoulders and keep his/her eyesdowncast.

Advantageously, the invention provides a means to enhance a chat roomexperience for a user by increasing the amount of expression the userscan convey in the virtual medium of the chat room. The presence of bodylanguage, in particular when conveyed by the simultaneous performance oftwo or more behavioural actions such as posture and eye gaze, rendersavatars more life-like and human and improves the quality of theircommunication. The invention advantageously enables a group of avatarsto co-ordinate their behaviour so that each avatar reacts to the bodylanguage of other avatars in an appropriate manner.

The preferred features as set out in the dependent claims may besuitably combined with any of the above aspects in any appropriatemanner apparent to those skilled in the art.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the invention will now be described, by way ofexample only, with reference to the accompanying drawings in which:

FIG. 1A shows schematically a first embodiment of the invention;

FIG. 1B shows schematically an enlarged view of the behavioural designuser interface shown in FIG. 1A;

FIG. 2A shows in more detail the neutral posture of both avatars asshown in FIG. 1A;

FIG. 2B shows the posture of the two avatars when the Bill avatar has ahigh machismo;

FIG. 2C shows the posture of the two avatars when the Bill avatar has ahigh flirtatiousness;

FIG. 2D shows the posture of the two avatars when the Bill avatar has alower flirtatiousness;

FIG. 2E shows the posture of the two avatars when the BOB avatar hashigh levels of being putUpon and listening, and a low level of domSub;

FIG. 3 shows a schematic overview of the behavioural architectureaccording to the invention;

FIG. 4 shows the hierarchical layers of a behavioural model according toan embodiment of the invention;

FIG. 5 is a schematic diagram of a simplistic framework for thebehavioural controller for an object according to an embodiment of theinvention;

FIG. 6 is a schematic diagram of a behavioural node in the framework ofan architecture such as that shown in FIGS. 5 and 7;

FIG. 7 is a schematic diagram of a more sophisticated framework for abehavioural controller than that shown in FIG. 5 for an object accordingto another embodiment of the invention;

FIG. 8 is a flow diagram schematically indicating real-time steps in amethod of generating behaviour in an object according to the invention,and off-line profile and adjective design;

FIG. 9A is a flow diagram indicating how the behavioural frameworkgenerates equivalent behaviour according to the invention; and

FIG. 9B is a flow diagram indicating how a user can manipulate anavatar's body movement to reassign the values assigned to specificbehavioural parameters of the behavioural controller.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

The best mode of the invention as currently contemplated by theinventors will now be described with reference to the accompanyingdrawings. It will be apparent to those of ordinary skill in the art,however, that the description of the invention is by way of exampleonly, and that the invention is not intended to be limited only to theembodiments described.

Referring now to FIG. 1A of the accompanying drawings, a firstembodiment of the invention comprising a tool for generating, inferringand designing body language for avatars and virtual characters is shown.This embodiment of the invention is of particular use for controllingthe behavioural characteristics of virtual objects in internetchat-rooms and computer game-type environments and the like.

In FIG. 1A, a computer device 1 is shown. The computer device 1 isassumed to be operated in use by a human user (not shown) who may nothave a high level of computer programming skill. The term computerdevice is used to imply any device having data processing ability whichcan be attached to a visual display, for example, games consoles,personal digital assistants, as well as mobile-communications devicessuch as mobile telephones etc.

The computer device 1 is provided with visual display means 2, forexample, a monitor, having display 3. Any suitable navigation means maybe employed by the user to navigate the display 3, for example a mouseor keyboard (not shown). Other embodiments may include navigation toolssuch as styluses, track-pads, and joysticks which may be used in anequivalent manner.

Display 3 includes a window 4 within which a virtual environmentapplication is running. A virtual environment is displayed in window 4which contains virtual objects. For clarity, only two virtual objectswill be discussed in the context of this preferred embodiment of theinvention. As shown in FIG. 1A, the two virtual objects are articulatedobjects comprising two avatars 5,6 capable of being animated. Avatar 5is also referred to herein as Bob and avatar 6 is also referred to asBill. Whilst Bill and Bob have an articulated form in the embodimentshown in FIG. 1A, it is possible for the virtual objects to benon-articulated, for example, to comprise faces which contort to displayemotions etc. References to behaviour therefore include faciallyexpressed behaviour and any form of behaviour by an object, regardlessof the form of the object.

Whilst virtual objects 5,6 are arranged to be capable of being animatedsemi-autonomously (in which case they will require at least some inputfrom the user), it is possible for at least one of the virtual objects5,6 to be programmed off-line to function autonomously using abehavioural controller according to other embodiments of the invention.In the context of the invention, off-line refers to programming thebehavioural controller when the virtual objects are not performinganimated behavioural in their virtual environment, or when suchbehavioural is paused or interrupted whilst off-line programming occursbefore being resumed.

Returning now to FIG. 1A, the virtual objects 5,6 in the virtualenvironment comprise two human avatars. However, it will be appreciatedby those skilled in the art that the form a virtual object may take canvary considerably depending on context. For example, depending on itsrole a virtual object may be an animal or any other articulate objectcapable of being animated. The term articulate is defined here as beingcomposed of parts which are capable of being moved relative to eachother, for example, limbs and/or joints.

Display 3 also shows a behavioural design user interface 7. Thebehavioural design user interface 7 comprises a separate window to thevirtual environment window 4. The behavioural design user interface 7enables a user to provide input to a behavioural controller to generatebehaviour by one or more of the virtual objects 5,6. The behaviouraldesign user interface application may comprise part of an applicationincluding the behavioural controller or it may be provided as part of aseparate software application arranged to interface with an applicationincluding the behavioural controller. The behavioural controllercomprises a set of connected nodes arranged according to a predeterminedbehavioural framework, each node in the framework mapping inputs tooutputs based on a number of parameters. The behavioural controller isdescribed in more detail herein below.

In FIG. 1A, the user has control over both virtual objects 5,6 byappropriately selecting behavioural parameter values using sliders 8 intracker bars 9 of the behavioural design user interface. Only thetracker bar and slider for the machismo behavioural parameter set hasbeen numbered in FIG. 1A for clarity. However, referring now to FIG. 1B,an enlarged view of the behavioural design user interface of FIG. 1A isshown.

The Behavioural Design Interface

FIG. 1B shows the behavioural design user interface 7 of FIG. 1A in moredetail. As FIG. 1B shows, the behavioural design user interface 7provides a user with a range of menu choices for each of the virtualobjects Bob and Bill which are interacting in the virtual environmentwindow 4 of FIG. 1A. In alternative embodiments of the invention, theuser may have less direct control over the behaviour of other virtualobjects in the environment, but for simplicity, it will be assumed herethat the user wishes to have direct influence over both Bob and Bill.Even where no direct control over another virtual object is provided,however, the user can still influence the behaviour of other virtualobjects indirectly as will be explained in more detail.

For clarity in FIG. 1B, only slide bars 8,10 for selecting the value ofthe behavioural parameter set labelled flirtatiousness in tracker lanes9 a, 11 a have been numbered.

The behavioural design user interface 7 as shown in FIG. 1B comprisestwo behavioural profiles 9 a to 9 h and 11 a to 11 h. Each behaviouralprofile shown comprises a set of “adjectives” or equivalentlybehavioural parameter sets which are associated with a particularbehavioural characteristic of the virtual object. As shown in FIG. 1B,the behavioural parameter sets include flirtatiousness 9 a, 11 a,friendliness 9 b, 11 b, machismo (9 c, 11 c), otherLiking (9 d, 11 d),sad (9 e, 11 e), selfImportance (9 f, 11 f), shyness (9 g, 11 g) andsuperioritytoOther (9 h, 11 h).

A user can construct other behavioural profiles containing a differentselection of behavioural parameter sets. It is also possible to modifythe properties of each of the plurality of individual behaviouralparameters which comprise a behavioural parameter set. The design of thebehavioural parameter set is defined by the behavioural framework of thebehavioural controller to collectively modify a predeterminedbehavioural characteristic. Accordingly, parameter set design is a taskwhich requires more skill than the simple selection of what behaviouralparameter sets will form a behavioural profile. The parameter set cancomprise just a single parameter. For example, a global parameter whosevalue can affect the outputs of all behavioural nodes within thebehavioural framework or an internal parameter whose value affects theoutput of only a single behavioural node of the framework.

Returning to FIG. 1B, the track lengths of the tracker lanes 9 a to 9 hand 11 a to 11 h represent a range of possible values a user can selectby positioning the slide bars 8 or 9. It will be appreciated that onlyslide bars for the first flirtatiousness behavioural parameter set havebeen labelled in FIG. 1B for clarity. In other alternative embodiments,other value selection means may be used, for example, radio buttons,drop-down windows etc, or directly inputting control data. However, theuse of a sliding bar and tracker is particularly preferred as thisenables a continuous range of values to be easily assigned to aparameter without unduly distracting the user from the main screendisplay virtual environment window 4.

The values shown in FIG. 1B, provide the virtual objects 5,6 with aneutral stance corresponding to each displayed behavioural parameter setbeen assigned the value zero by the user. This is shown more clearly inFIG. 2A, which shows the neutral posture of the two virtual objects inshown in FIG. 1A and the corresponding behavioural parameter set valuesshown in FIGS. 1A and 1B.

FIG. 2B shows how a user has directly influenced Bill's behaviour bymoving the slider in the machismo tracker bar for virtual object 6(Bill), and indirectly influenced Bob's behaviour. In FIG. 2B, the userhas assigned a value of 14 using the slider in the machismo behaviouralparameter set tracker lane, and Bill displays behaviour generated by thebehavioural controller for Bill. The behavioural controller of Bill hasinferred what equivalent machismo behaviour is required from the userinput by taking this input and propagating it through the behaviouralframework to assign appropriate values to the behavioural output nodesof the framework.

The behavioural controller for Bill has inferred from the assignedmachismo value of 14, equivalent behavioural action which in theembodiment shown in FIG. 2B comprises Bill maintaining a machismoposture. A variety of machismo postures may result, and also othermachismo behaviour such as machismo gestures, eye gaze, stance, facialexpressions etc. The behavioural controller of Bill also outputs one ormore values to the behavioural controller of Bob which reflect Bill'smachismo behavioural action(s). This output comprises a behaviouralaction to be performed by Bob indicating his response to Bill's machismobehaviour.

The behavioural controller of Bob receives the input derived from Bill'sbehavioural action which enables Bob's behavioural controller toeffectively interpret the body language conveyed by Bill's behaviour.This input can represent a behavioural action comprising a response toBill's machismo behaviour, for example, one or more parameter valueswhich will modify the behaviour generated by Bob's behaviouralframework. Alternatively, Bob may just receive an indication ofparameter values indicative of Bill's behaviour, and Bob's behaviouralcontroller could infer from the parameter values which are provided byBill, what output values would correspond to this response. Bob'sbehavioural controller is then able to infer from these output valuesother behavioural parameter values which in Bob's behavioural frameworkwould generate equivalent behaviour to the response, generates outputusing these behavioural parameter values, and then performs thisbehaviour. As shown in FIG. 2A, this comprises Bob adopting a submissiveposture in front of Bill.

In the manner described herein above, a user is indirectly able tomodify the behaviour of virtual object 5 by changing a behaviouralparameter set value for the virtual object 6. Bob has assumed a moresubmissive stance without the need for the user to directly move Bob'stracker bar to a submissive position. The behavioural controller for onevirtual object (Bob) has interpreted the body language conveyed by thebehaviour of the other virtual object (Bill). This has been achieved bythe behavioural controller of the first object generating outputreceived by the behavioural controller of the other object which conveysinformation indicating the body language. Suitable internal behaviouralparameter values are then inferred by the behavioural controller for theother virtual object, which modifies the behaviour of the other virtualobject. It will be apparent to those skilled in the art, that it ispossible for the body language information to be conveyed to more thanone virtual object, provided each virtual object has an appropriatebehavioural controller arranged to received input.

In the embodiment of the invention shown in FIG. 2A, the parametervalues of the behavioural framework corresponding to the character Bob(virtual object 6) are not directly affected by the values assigned toBill, and as the displayed slider values for Bob do not change theirvalues. However, in other embodiments of the invention it is possiblefor the slider values to be automatically updated to reflect their newvalues.

FIG. 2C shows how in one embodiment of the invention, the body languageof one of the virtual objects can be conveyed to the other virtualobject to set up an appropriate behavioural response. In FIG. 2C,following on from the behaviour shown in FIG. 2B, Bill's user hasassigned a value of 1 to machismo and has assigned a value of 10 forflirtatiousness. The behavioural controller for Bill now generatesautomated behaviour, such as animating Bill to reach out and touch thearm of Bob as shown in FIG. 2C. Bob's behavioural controller interpretsBill's body language as indicating he is less machismo and more friendlyand that the action of reaching out to touch Bob is therefore friendlyand not hostile. This can be achieved for example, by using the inputBob's behavioural controller has received to interpret the parametervalues provided by Bill's controller as indicating Bill is beingfriendly. Consequently, instead of displaying defensive behaviour (forexample) which might ensue if Bill was touch Bob in a hostile way, Bobinstead adopts a less defensive posture, and leans slightly forwards,rather than maintaining a submissive posture. Seeing that Bob is lessdefensive, the user can now set the level of flirtatiousness andmachismo for Bill to lower values, as is shown in FIG. 2D, whichproduces more friendly behaviour by both avatars.

As shown in FIGS. 2A to 2D, at no point does a user have to indicatespecific body movements or key in text to indicate a behavioural action,the behavioural controller generates appropriate behaviour autonomouslyin response to the assigned behavioural parameter set values in realtime.

Advantageously, by providing the behavioural design user interface 7 asa window-type software application, the extent of the interface on viewcan be varied according to a users requirements. In FIG. 2E, thebehavioural profile for Bob is visible in the behavioural design userinterface window 7 and a different behavioural profile is shown for Bobwhich includes different behavioural parameter sets from those shown inthe behavioural profiles in FIGS. 2A to 2D.

In FIG. 2E, Bob has been assigned by the user a high value for thelistening behavioural parameter set, an equally high value for theputUpon behavioural parameter set. Other behavioural parameter setsshown in FIG. 2E include touchyFeely, domSub, etc. Bob has been assigneda relatively low value of domSub. These values have been used by thebehavioural controller of Bob to produce behaviour which is appropriateto these values, accordingly, Bill has an erect posture and Bob has amore submissive posture.

FIG. 3 of the accompanying drawings shows schematically how thebehavioural controller of the invention generates the behaviour of anobject according to a behavioural model 30. The behavioural model 30defines a specific behavioural framework 31 for the object which governshow inputs received by the framework are used to generate certainbehaviours such as, for example, posture 32, gesture 33, facial movement34, eye gaze 35. The behavioural framework 31 comprises a number ofnodes and is described in more detail later (see FIGS. 5 and 7 forexamples of behavioural frameworks).

The inputs to the framework 31 can be derived from a variety of externaland internal sources. For example, from external contexts/events 36,from other characters 37, from other mood cues 38, from a predefinedprofile 39. The framework 31 itself can also be used to design certainprofiles 40, the resulting profiles 39 then providing input to theframework 31 to modify the values assigned to one or more behaviouralparameters of the framework nodes.

Where a user directly manipulates an avatar or directly inputs valuesusing the behavioural design user interface 41, input can be provideddirectly to the framework 31 by the values assigned by the movements tothe posture 32, gesture 33, facial 34, and eye gaze 34 behaviouraloutput nodes of the framework. The framework then infers appropriatevalues for behavioural actions and the user interface/tracking system 40then produces appropriate actions using the animation system.

Collectively, the values output by the posture, gesture, facial, and eyebehavioural nodes are used to produce appropriately animated behaviourusing an animation subsystem 41. The animation subsystem used can beprovided by any appropriate animation application, for example acomputer game engine such as the Quake engine or a scene graph basedcomputer graphics system such as SGI's Open Inventor library.

The Behavioural Model Architecture

Referring now to FIG. 4 of the accompanying drawings, the hierarchicalstructure of a layered hierarchical behavioural model according to theinvention is shown schematically.

FIG. 4 shows a preferred embodiment of the invention in which thefunctionality of the behavioural model comprises five layers: a firstlayer which functionally relates to the design of behavioural nodes inthe framework defining the behavioural model 51; a second layer whichfunctionally relates to the design of the behavioural architectureitself 52 a and to “content creation” 52 b (which relates to thecreation of actual animations etc. corresponding to the outputbehaviour, by skilled artists); a third layer which relates functionallyto the design of behavioural adjectives (equivalently, behaviouralparameter sets) 53; a fourth layer which functionally relates toparameter value selection mechanism, for example, as shown in FIG. 4 theslider function 54 a, to the design of behavioural profiles 54 b, and tothe direct provision of input into the model by direct manipulation of avirtual object 54 c; and finally a fifth layer which relates to realtime control 55.

In other embodiments of the invention, more layers of complexity can beprovided in the behaviour design and control architecture, however, fivelayers is the minimum required by the preferred embodiment of thepresent invention if real time control is to be supported.

The level of specialised knowledge and/or the amount of informationrequired to interface with a layer of the behavioural model generallydepends on the specific feature of the framework or function a user isseeking to modify. For example, the interface to the upper layers of themodel (e.g. layers 4 and 5) require relatively little specialisedknowledge on the part of a user, i.e., anyone can perform real timecontrol of a virtual object according to this aspect of the invention.However, a user wishing to design a node type (i.e., interface withlevel 1 of the behavioural hierarchy) is likely to be a specialistprogrammer.

The behavioural model shown in FIG. 4 differs from the knownmulti-layered behaviour design and control architecture of Scerri &Ydrèn (see below), in both the number of layers (which increases thecomplexity) and the inclusion of real time control in the model (forexample, see Scerri and Ydrèn [End User Specification of RoboCup Teams,RoboCup-99, Robot Soccer World Cup III, Springer-Verlag Lecture Notes inComputer Science(2000)] for more details of this simple multi-layerarchitecture). Other distinguishing features, in addition to having amore complex hierarchical structure, and the ability to implementreal-time control functionality, include the provision of a behaviouralparameter inference scheme which enables behavioural parameter values ofthe behavioural framework to be internally inferred from inputtedparameter values. Thus, when a user inputs a set of one or morebehavioural parameter values associated with a behaviouralcharacteristic, or manipulates the object to produce a specificbehavioural action, the received input can be used to generate otherequivalent behaviour comprising one or more behavioural actions. Thisbehavioural parameter inference system is described in more detail laterherein below.

In FIG. 4, the design node type layer 51 relates to the design of outputnodes that interface with an animation control system. Typically, theoutput of an output node is used by other sections of the node toanimate the virtual object. The animation system contains a number ofparameters that control the behaviour that it produces. An output nodehas one output for each parameter of the animation system and thatparameter is directly set to the value of the output. For example, inthe case of a posture node a new posture is generated as a combinationof a set of basis postures, based on a weighting for each basis posture.The postures are blended together with a motion combination system inproportion to their weights. The posture node has an output for eachposture that corresponds to its weight. Other output behaviours wouldhave more complex mappings between parameters and behaviour. Forexample, an output node can be created by a programmer (generally quiteskilled in their art) creating a sub-type of the node type and then, byadding the new type to the framework of the architecture at run time,the node can be used for reading in a behavioural controller definitionfrom a file. In other embodiments of the invention, the output nodeadapt their output to suit the animation system being used.

A user would generally need to be trained to be familiar with thebehavioural framework before modifying the architecture design 52 a orcontent creation 52 b features of layer 2 of the behavioural designmodel. Layer 2 comprises the framework for creating virtual objects fora particular application. It includes the design of the behaviouralcontroller and the design of content for an output node. For example, anoutput node can be designed to produce behaviour that is based onpre-existing motion or other content. Many output behaviours will bebased on some pre-existing animations and similar content, for example,a posture model is based on a set of pre-existing postures and a facialexpression module would be based on a set of pre-existing facialexpressions. These can be created by a skilled designer using commercial3D modelling tools.

The design of the behavioural controller is typically specified by adesign specification file, for example an XML file, or other suitablefile-type (possibly a specially designed file-type), which can be editedby hand. As the behavioural controller has a graph structure, a simplegraphical editing tool may be provided for editing the designspecification file in alternative embodiments. Once the designspecification file has been edited it can be complied into a controllerusing the behavioural framework described above.

The adjective design layer 53 and sliders 54 a, profile design 52 b,direct manipulation 52 c, and real time control features of layers 3,4and 5 in FIG. 4 are arranged to enable a generally unskilled user tocustomise the behaviour of an object. In particular, a user is able tointerface with layers 3 and 4 by means of designing a behaviouralprofile, as described in more detail herein below with reference to FIG.8 of the accompanying drawings.

The Behavioural Controller

Referring now to FIG. 5 of the accompanying drawings, a framework 60 ofa behavioural controller for a virtual object according to a firstembodiment of the invention is shown. In FIG. 5, the framework 60 of thebehavioural controller comprises a number of computational nodes whichmap input from one or more sources to one or more outputs. The nodeswithin the framework 60 include nodes providing external input 61, forexample, input which may be derived from the behaviour of other virtualobjects; global parameter nodes 62 which provide global frameworkparameters and their associated input values which is accessible by allnodes in the framework (either directly or indirectly); behaviouralnodes 63 a, 63 b, 63 c, 63 d, which are identified by a name and whichare associated with one of more values internal to the specific node;and output nodes 64,65, which may comprise external output nodes 64which output parameter values which can be used externally (e.g. for useby other virtual objects' behavioural controllers), or behaviouraloutput nodes 65 which provide parameter values which are used by thebehavioural animation mechanism to produce the actual desired animationof the virtual object providing the appropriate behaviour. From aprogramming perspective, each parameter consists of a name-value pair,e.g., a textual name with an assigned numeric value. The precisearchitecture of the behavioural model used will determine the form ofthe framework 60 of the behavioural controller.

In FIG. 5, the framework 60 comprises a number of behavioural nodes 63a,b,c,d whose function is to map a number of inputs to a number ofoutputs based on a number of parameters. FIG. 5 shows schematically howexternal inputs 61 and global parameter inputs 62 collectively provideinput to behavioural nodes 63 a,b,c,d. Nodes 63 a,d additionally receiveinput from nodes 63 b,c.

External input 61 comprises high level information about the environmentand other objects, for example, the degree to which an other characteris being friendly, or submissive.

Global parameter input 62 comprises high level attributes of the virtualobject that influence its behaviour and which modify the specificbehaviour determined by each behavioural node. For example, the globalparameter values may comprise a characteristic such as the mood orattitude of an object, e.g., happy or friendly. Referring briefly backto FIG. 1B, several behavioural parameter sets are labelled to indicatevarious global parameters, such as how friendly a character is or howshy.

Each global parameter name-value pair inputted to a behavioural node 63a,b,c,d within the behavioural controller framework generates one ormore numerical outputs. These numerical outputs are then passed on aseither external output by external output nodes 64 or are associatedwith behavioural output by output nodes 65.

External output 64 comprises information equivalent to the externalinput, for example how friendly or submissive the virtual object isbeing. Parameter name-value pairs provided as external output conveybody language information. When this external output is received byother virtual object(s), it enables internal behavioural parameters ofthe other virtual object(s) to be inferred which modifies the behaviourof the other virtual object(s). The external output by one controller iscorrelated with the external input provided to the behaviouralcontroller(s) of other virtual object(s) by matching name-value pairshaving the same name.

Each behavioural output node 65 produces output corresponding to abehavioural action. From a programming perspective, a behavioural outputnode 65 comprises a sub-type (in an object-oriented sense) of abehavioural node 63 a,b,c,d and performs a similar map of input tooutput to map from parameters to behaviour. A behavioural output node 65produces output that can be used to animate the character by other partsof the output node. For example, in a posture output node, there are aset of basis posture from which new postures are generated, and aparameter for each basis posture. Actual representation of a posture isstored in terms of an object's joint angles (as Euler angles). A newposture is generated by performing a weighted sum on the anglescorresponding to the basis posture using the parameters of the posturesas weights. These generated angles are passed directly into thecorresponding transforms in the underlying geometric representation.

The Structure and Function of Behavioural Nodes in the Framework

Referring now to FIG. 6, an enlarged view of behaviour node 63 d of FIG.5 is shown. FIG. 6 shows schematically how input from a plurality ofdiffering sources may be used by a behaviour node. As shown in FIG. 6,behavioural node 63 d is capable of receiving up to three differenttypes of input which are mapped in a forwards direction by the behaviournode to one or more outputs based on its internal parameter set. In FIG.6 input to behavioural node 63 d can come from the output from anotherbehavioural node, e.g. nodes 63 b,c; from the input 62 provided by oneor more global parameter name value pairs; and/or from external input 61from a source outside the framework. The external input 61 may begenerated by another object with which the object is interacting,according to a predetermined set of interaction rules. The externalinput to the behaviour node may be modified by the node. For example,input may be ignored, or limited to a maximum or minimum value if theinput extends beyond an acceptable range. Alternatively, if externalinput represents an action performed in accordance with a differentculture to that of the user, the external input may first beappropriately modified to ensure that external input corresponding tothe appropriate behaviour in the user's own culture is in fact used bythe framework to modify the response by the user's virtual object.

FIG. 6 also shows how a behavioural node can reverse its functionalityand perform a reverse map. A reverse map is performed whenever input isreceived by the framework at a level which corresponds to the output ofthe behavioural nodes. This can occur, for example, when a user directlymanipulates an object as this provides input to the framework at a levelequivalent to the output to the behavioural nodes 65. This received“output” is then the starting point for a reverse map through theframework, each internal behavioural node having its parameter valuesinferred in a manner described in more detail later herein below, untileventually even the global parameter values for the framework whichwould produce the received “output” are determined.

In either a forwards or backwards direction, each behavioural node inthe framework is capable to map one or more inputs to one or moreoutputs based on a number of parameters, according to the function ofthe node.

Forwards Map

In the case of the forwards map, the outputs provided by the behaviouralcontroller for an object given as the sum of a number of terms

${O_{i} = {\sum\limits_{j}T_{ij}}},$where each term Tij is the product of a number of factors

${T_{ij} = {\prod\limits_{k}F_{ijk}}},$where each factor is either an internal parameter or an input of thenode. As indicated above, the inputs to a node may originate as outputsfrom another node, be parameters assigned globally to the entirearchitecture or be external inputs, coming from another architecture(i.e., from another object's behavioural controller).

For example, a character could be set with a global parameter“friendliness” with a value 1.2 (indicating that the character isnaturally friendly), it would also receive an external input“pleasantness” from another character with a value of 1.5 (indicatingthat the other character is being pleasant). These would be multipliedtogether in a node to produce an out put “close” with a value 1.8(indicating that the character should adopt a close posture to the othercharacter). This output would then be passed to other nodes which mightdetermine that the character should achieve this by combining two basispostures, leaning forward and orienting towards the other character. Theweights for these two postures would be calculated from the “close”output and passed to the animation system which would generate the newposture.

Referring now to FIG. 7, a schematic view is provided of a framework fora behavioural controller according to a second embodiment of theinvention is shown in more detail. In FIG. 7, the behavioural nodesinclude immediacy equilibrium, dominance factor, immediacy difference,responsiveness, dominance difference, affiliation, status, pleasantness,proximity, space fling, and relaxation. Behavioural output nodes 65include facial expression, high level posture nodes, eye gaze, gesture,and posture. Other embodiments may include more behavioural output nodessuch as speech tone, speed, accent, etc.

Whilst the complexity of the framework shown schematically in FIG. 7 ishigher than the simplistic framework shown in FIG. 5, more complexframeworks may be constructed to suit specific applications andembodiments of the invention. To enable a user to modify the behaviourof an object which is generated according to its behavioural framework,a behavioural adjective comprising a set of one or more behaviouralparameters is constructed as this greatly simplifies the level of inputthe user is required to supply.

Examples of behavioural adjectives include those shown in FIG. 1B wherethe behavioural profile for each virtual object 5, 6 includes thefollowing adjectives: flirtatiousness, friendliness, machismo,otherLiking, sad, selfImportance, shyness, and superioritytoOther. Eachof these behavioural adjectives comprises a behavioural parameter set,and is generally represented in the behavioural design user interface bya simple textual name or phrase. Typically an “adjective” nameintuitively describes that aspect of behaviour the “adjective” modifies,to facilitate recognition by a user. Each parameter in a behaviouralparameter set can be assigned an initial or default value, which can beoperated on by a function, and may be operated on in conjunction withany externally inputted value. For example, the function may be a simplelinear algebraic function, or simply to scale any value assigned by auser to a behavioural parameter set by a predetermined amount.Alternatively, the function may be an “identity” function, returningjust the value inputted.

The framework shown schematically in FIG. 7 represents an embodiment ofthe invention for performing various aspects of non-verbal,intra-personal behaviour. The behavioural controller enhancesinteractions between virtual objects, for example, characters in anon-line meeting or computer game/chat-room scenario and can make themappear more believable. In particular, the framework is useful forsemi-autonomous avatars (i.e., where the user does not specificallydictate each behavioural action of an avatar).

As many of the uses of avatars involve intra-personal behaviour,appropriate non-verbal behaviour greatly enhances their use. In FIG. 7,the behavioural controller encodes a number of intra-personal attitudesand potentially controls a number of outputs, which produce animation,such as posture and eye-gaze behaviour. The control system is based ontheories proposed by Argyle (Michael Argyle (1988) Bodily Communication2^(nd) edition, Routledge) and by Mehrabian (Albert Mehrabian (1972)Nonverbal Communication, Aldine-Atherton). Argyle proposes two aspectsof interpersonal relations that have the greatest effect on non-verbalbehaviour, intimacy and dominance-submission. These can be modelled ashomeostatic motivations as described below. Related to these Mehrabianproposed three dimensions of non-verbal activity affiliation (liking),displayed in such things as smiling, physical closeness and touching,potency/status, displayed by relaxation or tension and responsiveness,displayed by general physical activation. The responsiveness dimensionis optional and is not implemented in the behavioural controller shownin FIG. 7, which is otherwise based on these quantities.

In FIG. 7, as Argyle's dimensions of Immediacy and Dominance are closelyassociated with Mehrabian's dimensions of Affiliation and Status theyare associated in the architecture. Mehrabian's dimensions are modelledas behavioural nodes that are directly determined by the Immediacy andDominance agents. Immediacy and dominance are modelled as homeostaticmotivations.

A desired value for a variable is calculated by the ImmediacyEquilibrium and Dominance Factor nodes based on the global parameters ofthe virtual object and external inputs from any other virtual object.Factors that increase the desired intimacy include are how friendly thecharacter is, how much it likes the other character (global parameters)and how pleasant the other character is being (external input). Factorsthat decrease it are how shy the character is and how dominant the othercharacter is being. All these factors have weightings that can vary fromcharacter to character based on their profile. The desired dominancefactor is a desired difference in status between the two characterswhich also depends on a number of other factors. The Immediacydifference would be the difference between the desired immediacy and theactual immediacy, which is determined by how intimate the othercharacter is being (an external input) If the actual immediacy is I_(a)and the desired immediacy is I_(d), the immediacy difference is:ΔI=I _(d) −I _(a)

The equation for dominance is similar though the factors are course ofdifferent. A third dimension of behaviour responsiveness, is implementedin other embodiments of the invention.

In this embodiment of the invention, the behaviour of the character isdefined in terms of high-level types of behaviour: pleasantness,proximity, space filling, relaxation. These act as intermediariesbetween the motivational levels of the hierarchy and the actionproducing levels. Pleasantness is a general pleasant demeanour such as asmiling face while the opposite might be frowning or aggressivegestures. It is an expression of affiliation (like or dislike).Pleasantness does not have many expressions in posture but an example isthe “head cock” where the character tilts its head to the side when withthe other character, this is normally interpreted as a friendly posture.Proximity is social distance (closeness), including physical distancebut also such things as body orientation or amount of mutual gaze. Lowsocial distance is a result of high affiliation. It is expressed inposture in a number of ways such as leaning forward or touching theother character. High social distance is the opposite and can beexpressed as leaning away but also turning the whole body away. Spacefiling is the tendency to make oneself larger or smaller, for example,by posture or more or less expansive gestures. Examples postures includedrawing up to full height or standing or sitting with legs apart. Highspace filling is associated with dominance, low space filling withsubmission. Relaxation is low bodily tension associated primarily withposture but also with other types of behaviour. High relaxation is asign of a dominant status, and can be expressed by asymmetry of posture.

In this embodiment of the invention, there are a number of high-levelposture nodes that transform high level behavioural factors into actualpostures. There is one high-level posture node for each posture. Eachdepends on one or more of the high-level behaviour types. The values ofthe high-level behaviour types are multiplied by a weighting to producethe value for a posture. This determines the degree to which thecharacter is performing the posture. The weightings depend on thecharacters profiles, so that different characters would producedifferent postures for the same high-level behaviour. The values of thepostures are then passed to the posture output node. This stores theactual representation of the postures. This is a representation in termsof joint angles. The joint angles corresponding to each posture aresummed using the values of the postures as weights and the result is theactual posture of the character, which is passed directly to theunderlying geometric representation.

FIG. 8 shows certain stages in the generation of behaviour of a virtualobject. The stages involved are: firstly, the design of one or morebehavioural adjectives; secondly, the design of a behavioural profilewhich comprises a plurality of behavioural adjectives; thirdly, theassignment of values to the behavioural adjectives in the profile by auser; and finally, the subsequent generation of behaviour by thebehavioural controller. The adjective and profile design stagesgenerally occur off-line, whereas the user input and generation ofbehaviour by the behavioural controller can occur dynamically inreal-time whilst the user is on-line in the virtual environment.

In the context of the invention, an adjective comprises a set of one ormore behavioural parameters. The selection of which behaviouralparameters in the framework of the behavioural controller affect abehavioural characteristic is a relatively skilled task. By providingadjectives however, the amount of data and understanding required of auser of the behavioural design interface is reduced. The adjectivedesign 70 and the selection of default values 71 to assign a behaviouralparameter has already been described hereinabove, with reference to FIG.7.

Profile Design

In contrast to the level of knowledge required to set up adjectivedesign, the selection of which adjectives should be included in thebehavioural profile of an object 72 is a less complex task compared tothe level of knowledge required to construct an adjective. The designstage of a behavioural profile enables a user to select whichbehavioural characteristics are relevant to the behaviour of theobject(s) the user is seeking to control using the behavioural designinterface.

The behavioural profile therefore consists of one or more adjectives. Anadjective may comprise a single global or uniquely assigned behaviouralnode parameter value, or a plurality of one or more of each type ofparameter name-value types. In this way a user can set internal and/orglobal parameters for the behavioural controller. In one embodiment ofthe invention, the behavioural profile comprises two sections, both ofwhich are described using parameter name-value pairs. The first sectiondescribes the overall personality of the object (the term personality isused here to represent the general disposition of the object). Thesecond section comprises a set of attitudes name value. In oneembodiment of the invention, each adjective in the “personality” sectioncomprises global parameter(s), whereas each adjective in the “attitude”section comprises unique behavioural node parameter(s).

Attitudes comprise aspects of the virtual object's behaviour that varybased on which other virtual objects are being interacted with by thevirtual object. For example, a virtual object might be more friendlywith one character than another. An attitude consists of the name of acharacter (or a set of characters) and a set of parameter values thatare only loaded when interacting with that character. In this context,an attitude is a form of “adjective” in that it comprises a setconsisting of at least one behavioural parameter name-value pair.

The attitude parameter section of the behavioural profile includes a setof at least one parameter value for each named object present in aninteraction. These values are loaded into the parameters of thebehavioural framework in order to generate appropriate behaviour. A setof parameter values for a class of objects, or an individual objecte.g., a parameter value for objects of the class “stranger” can also beassigned to reflect the fact that the object does not like other avatarswhich the avatar has not encountered before.

A parameter may have its value set in any appropriate manner. Two waysare considered extremely appropriate. Firstly, a value can be directlyspecified by specifying a frame work parameter using a node name, aparameter name, and a value to set the parameter to. Secondly, aplurality of framework parameters may be associated in a data structurealready described herein called an “adjective”, a term already definedherein to refers to a set comprising one or more behavioural parametersof the behavioural framework. A range of possible values a user mayselect for an adjective may be included in the profile design stage 73(or alternatively it may form part of the adjective design stage).

Finally, once an “adjective” has been assigned a value by a user (step74), the actual values of each parameter in the set are determined instep 75 and are given by as a function of the default values definedduring the adjective design stage (step 73) and the value assigned tothe adjective by a user (step 74).

For example, a user may assign a value of ‘10’ to the behaviouralparameter set “adjective” denoted “happy”. When the behavioural profileis read into the behavioural controller, the value ‘10’ assigned by theuser for “happy” is then translated into an actual parameter value forall parameter(s) which have been determined by the adjective design(steps 70,71) to make up the parameter set “happy”, the actual valuebeing determined by a function operating on the input value which isassociated with the adjective.

Which parameters collectively comprise a behavioural parameter set isdetermined by a profile translation file. The profile translation filedefines each behavioural parameter set and associates with each an“adjective” name (or some equivalent a name or phrase for thebehavioural parameter set, i.e. a name intuitively associated with thebehavioural characteristic the parameter set modifies). The profiletranslation file also defines at least one parameter as belonging to thebehavioural parameter set. In summary, the final value in each parameterused by the behavioural model is the function of the value assigned inthe profile and/or the value assigned to the behavioural parameter set.

There are several ways a user can modify a profile. For example,text-editing the code, assigning a value using a slider, or by directmanipulation of the virtual object, which is described in more detaillater.

Returning now to FIG. 8, the value assigned by the user to a behaviouraladjective for the object is provided as input to the behaviouralcontroller of the object. The behavioural controller then takes theinput and infers from it which parameters should be assigned whichvalues to produce suitable behavioural output (steps 75,76, 77, 78). Themechanism by which the input received is used to generate behaviour bythe object is shown in more detail schematically in FIG. 9A.

FIG. 9A indicates the two ways in which the framework operates. Firstly,the framework can operate using forward mappings only, which occurs whena high-level input such as an external input or global parameter oradjective is set. In this case, the framework is run forward justgenerating outputs from inputs at the nodes (see also FIG. 6) and doingforward mappings until the values of the output nodes are determined.

Secondly, the framework can operate to perform a reverse mapping whenthe outputs are changed rather than the inputs (again, see also FIG. 6).For example, when direct manipulation of an object occurs. It is alsopossible where a plurality of inputs are received to perform bothmappings, however, the reverse mapping can affect the output by thedirect mapping and so in some embodiments of the invention this isperformed first.

Referring now to FIG. 9A, the behavioural controller receives input(step 81). If the input is received at an input node (step 81), forexample, at a high level node in the framework corresponding to anexternally input parameter or global parameter, then the input is thenmapped forwards within the behavioural controller's framework ofconnected nodes (step 83) to produce certain output (step 83) which isused to provide values to an animation system to generate the desiredbehaviour (step 85). The desired behaviour comprises equivalentbehaviour to the behaviour indicated at input. However, the equivalentbehaviour may be more complex and/or comprise more actions, some ofwhich may be performed simultaneously and/or in a sequence.

Reverse Map

If instead, input is received from a source such as a directmanipulation of the object, then the input received is equivalent to thebehaviour which the output one or more of the output nodes of theframework would produce (in conjunction with an animation system). Inthis case, the input is received at one or more of the output nodes(step 81) and is first reverse mapped through the behavioural frameworkto determine what input values would cause such output to be produced(step 82 b).

This reverse mapping requires all relevant nodes in the framework tohave their parameter values inferred, until the global parameters whichwould produce such behaviour are inferred (step 84,85). These inducedparameter values are retained for a forward mapping process startingfrom the inferred global parameter values and used to generate otherbehaviour. The result is that although only one action was used toprovide direct input, the behaviour produced by the controller can bemuch richer and complex than the original directly manipulated input,and can comprise one or more behavioural actions, or even a sequence ofbehavioural actions. This is described again in more detail later.

Forward Map

For example, consider an embodiment of the invention where thebehavioural design interface assigns values to one or more globalparameters, for example, global parameters representing certain moods ofa virtual object such as an avatar, as well as perhaps certain nodespecific parameter values, for example, representing an attitude of theavatar towards another virtual object. Referring now to both FIG. 7 andFIG. 9A, the input 62 is received by the appropriate nodes in thebehavioural framework (step 82 a) then mapped by the behaviouralframework through internal behavioural nodes 63 (step 83) (for example,referring back to FIG. 7, the parameter values may be mapped firstlythrough the immediacy equilibrium and dominance factor nodes, and thento the immediacy difference, responsiveness, and dominance differencenodes, which then map forward to the affiliation and status nodes, andthe pleasantness, proximity, space filing and relaxation nodes, untilreaching the output nodes 65. In the embodiment of the invention shownin FIG. 7, the output nodes comprise the facial expression, high levelposture nodes (and this further maps to posture nodes), eye gaze, andgesture nodes, each of which generates output which can be provided to asuitable animation system to cause the avatar to be animated andgenerate the appropriate behaviour. When the input is forward mappedthrough the framework, the global parameter are provided as input toother nodes in the framework, which enables secondary behaviouralchanges to be induced. These global parameter values thus enables morecomplex behaviour to be performed by the avatar.

Direct Manipulation

In the embodiment of the invention shown in FIG. 7, the output nodescomprise the facial expression, high level posture nodes (and thisfurther maps to posture nodes), eye gaze, and gesture nodes, each ofwhich generates output which can be provided to a suitable animationsystem to cause the avatar to be animated and generate the appropriatebehaviour. Referring now also to FIG. 9, consider an example where auser directly manipulates the posture of an avatar (e.g., by clicking onthe avatar's arm step 90) for example, to touch another avatar's arm(step 91). This generates certain input at the posture node of theframework (step 92) The global parameter values which would produce sucha behaviour by the avatar may be set up to do so only when friendlinesstowards the other avatar is intended. The behavioural controllerperforms a reverse map from the values produced by the posture node(step 93) back through the relevant nodes of the framework untilreaching the global parameter input nodes of the framework, where anappropriate input value for the global behavioural parameter“friendliness” can be inferred (see step 93). These global parametervalues are then used to start a forwards map through the framework.

The reverse map will have also assigned values to other behaviouralparameter values in the framework, for example, to pleasantness andrelaxation (see FIG. 7). Running a forward map (step 94) from theinferred global parameter values, the values assigned are used togenerate more output (step 95) which generates other behaviour (step96).

For example, the values assigned to pleasantness and relaxation, cangenerate additional behaviour at the output node for facial expression,which results in the avatar smiling. Other behaviour such as changingthe eye gaze to look at the other avatar's face may also be produced,and a gesture such as handshaking may be generated to follow touchingthe arm. Thus although the user has only directly manipulated theavatar's posture to touch the arm of another avatar, the behaviouralcontroller has interpreted the body language the user has given theavatar to infer that the avatar is friendly towards the other avatar andwishes to greet the avatar, and accordingly generates appropriatebehaviour.

In summary, by inferring more information from the information receivedas input, the behaviour generated using a reverse map can comprise oneor more behavioural actions which can be performed as a sequence, or atrandom, and one or more behavioural actions such as eye gaze, stance,motion etc., can be performed simultaneously. This greatly increases thecomplexity of the behaviour shown by the object, whilst also providing avery simple control mechanism for the user. The inference mechanism isdescribed in more detail later.

Direct manipulation can be achieved by the user directly manipulatingthe virtual object using a mouse to click on a body part of the virtualobject and then drag to body part into a new position. Other computernavigation tools or combination of tools, e.g. a cursor and thekeyboard, a joystick, a track-ball, a pointer etc, can be used in anyappropriate manner as is apparent to those skilled in the art tomanipulate a virtual object.

In embodiments of the invention in which a real object is controlled bythe behavioural controller, the user may wish to directly change theposture of the object by hand. The characteristics of this motion, whichmay include displacement and or the speed of the movement, as well asits proximity to other objects etc during the motion, will determinewhat input is fed to the behavioural controller.

In this way, a user is able to indicate a specific desired action by avirtual object, and the behavioural framework is then able toextrapolate more behavioural actions which are consistent with thebehaviour the user has indicated is desired. The new output parametervalues can be used to reproduce not only the action indicated by theuser but also similar motion that is appropriate to differentcircumstances. Moreover, the parameter settings can then be either savedto a behavioural profile or as an adjective that can then be used by auser to build a behavioural profile. The direct manipulation of anobject to trigger the generation of more complex behaviour isparticularly useful where the object is a toy, as a child can theneasily program the toy to perform complex behaviour.

The manner in which the behavioural framework for the behaviouralcontroller of the virtual object infers the internal and globalparameters is described is now described in more detail.

The Behavioural Inference Scheme

The structure of the behavioural framework defining the operation of thebehavioural controllers enables internal parameter values to be inferredfrom input into the framework using a reverse map, for example when auser directly manipulates the virtual object. Referring back again toFIG. 9A, consider the case where the behavioural controller receivesinput derived from a source external to the framework. Where the inputis directly associated with output, e.g., if derived by directmanipulation, a reverse map needs to be performed to seed the globalparameter values for the forward map. This reverse map is performedusing the behavioural inference scheme outlined below.

An external source of input could be determined by the environment ofthe object. For example, the input may comprise information that anotherobject has been thrown towards the object. Alternatively, it maycomprise output from the behavioural controller of another object.Alternatively, it may comprise input from a user, for example, dataprovided by motion sensors attached to the user. Alternatively, it maycomprise directly inputted values from a user, or input via thebehavioural design user interface. The input can provide an indicationof the body language of another object, in which case this informationcan be used to infer an appropriate response.

Once input has been received by the behavioural controller (step 80),the received input values are then associated with output values for theobject (step 81). This is performed using a special purpose map for eachdifferent type of behavioural output node. Once this initial mapping hasbeen performed at the output node a reverse map is performed through theentire framework in order to infer internal parameters of nodes andglobal parameters. This is achieved using an equation set up for eachaffected output of each node in the behavioural framework:

$T_{ij} = {\prod\limits_{k}F_{ijk}}$where each factor is either an internal parameter or an input of thenode.

In this way, each term Tij of the output has a solvable factor whichdistinguishes it from other terms Tij in the output. The terms Tijinclude solvable factors which may be internal values such as aninternal parameter value or global parameter value. In suchcircumstances, the solvable factor is simply reassigned a new value. Ifthe solvable factor is input from another node, then the process isiterated by forming a new set of equations to represent input from thesource node. The change at the output is thus propagated up thehierarchy of nodes until the solvable factor can be represented by aninternal or global parameter.

Each term Tij has two solvable parameters: the first is used for solvingwhen inferring an internal state for real time control and the other isused for profile editing.

The output of each node in terms of a solvable factor is:

$O_{i} = {\sum\limits_{j}{f_{ij}S_{ij}}}$where fij is the sum of non-solvable factors and Sij is the solvablefactor. This linear equation is then solved using suitable linearalgebra methods. For example, where a user has performed a number ofediting functions, a sequence of linear equations exist in matrix form:o=Fswhere o is a vector of the outputs of each of the edits, F is a matrixof non-solvable factors (which might depend on context, e.g. differentsettings of external inputs or time varying parameters, and s is thevector of solvable factors. As there will be more than one exactsolution in all cases where F is not square, a pseudo-inverse method canbe used to find a least-squares solution:s=F ⁺ o

This method enables the parameters of a single node to be inferred. Inorder to infer parameters for nodes further up the hierarchy which arenot directly connected to outputs, some of the solvable factors areprovided as inputs into a node rather than internal parameters Theinputs can either be external inputs, global parameters or the outputsof other nodes. External inputs are not able to be solvable parameters.Global parameters have their values set directly during the solutionprocess.

If the input is the output of another node, the solution requiressolving for the other node, which can be achieved by setting up a systemof equations including that node and any nodes which provide input intothat node. In this case, the additional nodes provide output to othernodes, and so the equation to be solved is best expressed in the form

$0 = {{\sum\limits_{j}{f_{ij}S_{ij}}} - O_{i}}$each behavioural node to be determined from a given output node'soutput.Real Time Control

In embodiments of the invention where the final layer in the behaviouralhierarchy enables a user to provide an object with complex behaviour inreal time, the user may wish to provide input to the behaviouralcontroller from a variety of sources or to use more than one behaviouraldesign interface for any individual object. For example, or otherdevices which provide input may include-using motion-trackers, forexample on a user's head and/or body. Two or more control devices may beoperated simultaneously by a user to reduce the operational burden. Thecontrol device used exploits the use of adjectives to set certainparameters in the behavioural model to ensure that a user does not needto constantly control all the parts of the virtual object's body butonly to manipulate a limited number of parts from time to time.

The behaviour of the object, whether derived by direct manipulation orsensor tracking a user generates information which can be passed to thebehavioural controller using an appropriate interface mechanism. Whenthe information represents parameter values which are equivalent to theparameter values of certain behavioural output nodes, the behaviouralcontroller performs a reverse map through the framework to assign valuesinternally to the relevant parameters needed to produce that particularbehaviour by the virtual object. This enables an object to generateother behaviours associated with these parameters. For example, the usermight animate an object's arm to touch another character's arm such asis shown in FIG. 2C. The framework would infer that this gesturecorresponds to a high value of flirtatiousness. This would then resultin other flirtatious behaviour, for example, leaning forward andsmiling.

The parameter values can represent a broad behaviour pattern, such as“friendliness”, which may correspond to a users behaviour in the casewhere trackers are used. No probabilistic mechanisms are used to inferthe user's behaviour in this embodiment of the invention as theinference mechanism simply solves the algebraic equation relevant to themanipulation of the virtual object to determine what type of behaviouris being represented. Once recognised as “friendly” behaviour, theframework reproduces a wider range of friendly behaviour. This widerrange of behaviour extends beyond what a user could be expected todirectly control in real time, for example, a virtual object may beinduced to smile by the framework, despite the fact that the user hasonly indicated the avatar is friendly by manipulating the avatar to givea handshake. If no input is provided, the framework enables the virtualobject to continue to act autonomously. This enables a user unfamiliarwith the behavioural design user interface to become more accustomed tothe virtual environment and to learn about that environment withouthaving to attempt to manipulate the virtual object right from the start.This provides a highly easy-to-use interface, suitable for even veryyoung children.

The behavioural control system as shown in the accompanying drawings isbased on an embodiment of the invention supporting non-verbal behaviour.In the general context of the invention, however, behaviour isrepresented by physical actions and/or vocal actions each modified bycertain parameters. For example, physical actions such as body languagemay be modified by the current internal state of an object, e.g.,whether the object is afraid. Vocal actions can be modified byparameters such as, for example, pitch. In this context, the term“behaviour” can be defined as one or more actions generated as acontrolled or uncontrolled (reflexive) response to certain stimuli.Behaviour includes long term characteristic traits (for example, timidor aggressive) as well as more transient, emotional traits (for example,happy or sad).

An example of a non-verbal behaviour embodiment of the invention modelsan interpersonal relationship using the concepts of intimacy anddominance-submission. In this embodiment, the behavioural control systemproduces non-verbal activities to indicate various degrees of certainattributes such as affiliation, potency/status, which reflect the levelof intimacy and dominance/submission between parties. Affiliation isrepresented by a suitable behavioural display, for example, byactivities such as smiling, physical closeness and/or touching.Potency/status can be represented, for example by displayed relaxationor tension in posture. Other non-verbal activities that can berepresented include responsiveness, displayed by general physicalactivation. In this context, the parameter values shown in FIG. 1B, arein this embodiment of the invention predefined emotional/intra-personalparameters such as “friendliness” and “otherLiking” corresponding toaffiliation or “machismo” or “selfImportance” corresponding todominance.

Other Embodiments of the Invention

The embodiments described herein above primarily describe a virtualobject's behaviour being controlled. However, the concepts ofbehavioural control described herein readily extend to the control ofnon-virtual, i.e., real or tangible objects, even when not explicitlydescribed in the above description, and the invention according extendsto the behaviour of both real and virtual objects as will be appreciatedby those skilled in the art.

The above embodiments of the invention have had behavioural frameworkswhich are essentially static. In a static framework, once a parametervalue has been set by a user it remains set to that value so untilreset. More autonomous animation can be produced by varying theparameters over time. In order to produce real animation, the frameworkis modified to include time varying parameters.

Different types of time varying parameters can be supported by abehavioural framework. For example, a randomly varying parameter couldprovide occasional posture shifts while a different type could producemore predictable animations. Such parameters would require moresophisticated techniques for performing a reverse map, and so are notcontemplated in the best mode of the invention. By controlling thealteration of any timings of parameter changes, however, more realisticposture shifts may be obtained.

Another animated embodiment of the invention requires the provision of anumber of profiles, which would be changed between or interpolated overtime. This would alter a set of parameters in one go. One way ofimplementing such an embodiment of the invention is to provide profilesas key frames in an animation sense and interpolate between them.Another way of implementing more animation is to control the characterusing a finite state machine system where each state has a profileattached. The states would change due to events in the world or internalfactors of the character and when a new state is entered its profile isloaded.

Other embodiments of the invention have other types of output node. Forexample, in one embodiment of the invention, it is possible to provideonly a posture node as an output node. This output node provides asimple mapping from parameters to behaviour, a parameter exists for eachposture and the values of these parameters provide an interpolationbetween the postures. This model could be applied to other types ofbehaviour, for example, pieces of motion could be interpolated in thesame way. More complex behaviours will, however, requires more complexmappings, which increases the complexity of the mappings backwards frombehaviour to infer internal parameters.

There are various approaches to this problem. The first is to ignore itand have some output nodes that can produce behaviour forwards but notbe solved for. This is a feasible option as long as there are othertypes of behaviour that can be controlled. Some aspects can be ignoredas they are too hard for a user to control, for example, eye gaze.Another approach is to provide a hand crafted mapping for each type ofoutput node. This is time consuming. The final way would be to use somesort of learning scheme to learn a mapping, for example, Bayesian orneural networks.

One embodiment of the invention combines a finite state machineextension and a probabilistic Bayesian network extension. Each node inthe network has a number of states in this embodiment, each state havingdifferent internal parameters settings and as such different mappingsbetween inputs and outputs. In this embodiment, the probability of anode being in a given state would depend on the states of the othernodes, and global parameters or the outputs of other nodes. Theframework then has two different types of interrelations between nodes.One is continuous as in the current system with continuous valuedparameters going between nodes. The other is discrete with nodes beingone of a set of discrete states. Both types of information are givenequal importance, as some behavioural features are naturally discrete,whereas other behaviour is not. For example, one can either cross one'sarms or not, and one is either in a conversation or not, 50% of eithercase being not very meaningful. However, other behavioural features arenaturally continuous, for example, an object should be able to varycontinuously between being happy and being angry over time and not do soas a sequence of discrete steps.

Different methods are suitable for inferring each type of information insuch embodiments of the invention. The framework presented here is goodfor continuous data without uncertainty, whereas Bayesian networks caninfer the probabilities of a set of discrete states. In some embodimentsof the invention, an extension to the behavioural framework enables bothmethods for inferring information to be combined.

The method described hereinabove with reference to the accompanyingdrawings is non-probabilistic and can be used to infer the continuousstate when the state of each node is known. In other embodiments of theinvention where both inference methods are combined, then a Bayesiannetwork can be used beforehand and node states and their probabilityrelationships between them can be treated as a Bayesian network and usedto infer the states of each node from the output. The topology of thenetwork would remain the same whether it is treated as a Bayesian orcontinuous network. Once these elements are in place the internalparameters of the system can be learned automatically from data ofpeoples behaviour.

In other embodiments of the invention, the methods described above fordesigning profiles can be extended to large numbers of examples to learna set of internal parameters that are based on real data. Bayesianlearning techniques can be used to learn probability relationships. Withthis the parameters of the system can be based on data from real peopleand so can more accurately reflect people's behaviour which is very hardto capture theoretically.

An embodiment of the invention in which users interact via an on-linechat room is now described. In this embodiment, users are allowed toexpress themselves with body language as well as text providing input tothe behavioural controller. This is also suitable for embodiments of theinvention such as on-line counselling where an avatar represents a humancounsellor, as well as other virtual environments such as on-linemediation, on-line meetings (i.e., where information is to be exchangedby a group of virtual objects), on-line collaborations (i.e., where atask is to be performed by a group of virtual objects), and on-linecommerce environments (e.g. avatar sales rooms).

The body language comprises behaviour generated autonomously by anarchitecture designed within the framework described, by using a set ofpredefined emotional/intra-personal parameters from a profile togenerate the behaviour. The user accesses the system using a standarddesktop PC. Computer navigation devices used by the user to provideinput to the behavioural controller are limited to those commonlyavailable in such an environment, for example, a mouse and keyboard. Thekeyboard is used to input text and the mouse can be used to control thecharacters motion. As the user will mostly want to concentrate on typingtext the control of the characters movement will be occasional. Oneinput (e.g. via the behavioural design user interface) will result in acorrection to the characters overall behaviour rather than a singlemotion, thus making most use of a small amount of user input. This iseasily achieved by inferring the emotional/intra-personal parametersfrom that input. More direct input of the avatar's emotions is donethrough the “emoticons” used in current graphical chat systems. Thesecan directly set global parameters.

Another embodiment of the invention extends the above embodiment byfurther including input provided by the motion of the user. For example,home computer often have cheap video camera's, which can be arranged toperform face tracking through a specialised output node that providesinput to the behavioural controller, the input being used to infer theuser's state.

Embodiments of the invention described hereinabove allow a user tocustomise the behaviour of their avatar, by allowing them to edit theiravatar's profile. For the end user this would have to be done in as userfriendly a way as possible, and the embodiments shown in FIG. 1A to 2Eis particularly suited to editing adjectives using the set of slidersprovided by the behavioural design user interface.

The invention has many applications, including international avatarconferencing, which can be implemented in a manner similar to that for achat room. In this case it is more important to capture the actual bodylanguage of the participants, particularly for business negotiations.This could be done by having more sophisticated body-tracking systems,including high quality face tracking the user. Other cues such as toneof voice could also be used to infer the state of the user. Theframework of the behavioural controller can be made more complex toensure each user's behaviour is correctly inferred.

Behavioural Translation

The inference scheme described herein above enables a model of theinternal state of a virtual agent or avatar to be determined whichextends the application of the behavioural controller to include theability to translate between differing cultural behaviours. For example,in the case where the avatar is functioning as a personal virtual agentfor a user who is interacting with users from different culturalbackgrounds in an on-line environment such as a web-meeting, the abilityto directly represent the user's actual movements and emotions may notbe desirable.

Such embodiments of the invention may be modified to include translatingthe behaviour by the behavioural controller at either the input oroutput stages. This could be achieved by generating the external outputsusing a behavioural framework corresponding to one culture andrecreating the behaviour from this external output using a differentframework corresponding to the other culture. Otherwise the twoframeworks could be the same but could use different profilescorresponding to the different cultures.

This can also be achieved by including a translation element whichenables input received by the behavioural controller associated with abehavioural action corresponding to a first culture to be firsttranslated into input associated with an equivalent behavioural actionin a second, differing culture. Similarly, it is possible to implement atranslation element which receives the output from the outputbehavioural nodes of the behavioural controller corresponding tobehaviour according to the second culture and translates this back intothe first culture.

The translation element can be provided within the controller toimplement the translation of body language from one culture to another.One mechanism by which this can be achieved is by high-level parametersrepresenting the meaning of a piece of body language being used withdifferent profiles to generate different body language in differentcultural contexts. This would ensure that other observers would perceivethe participant's avatar's body language in their own culture. Thus acertain behaviour would input into the system by an observer of cultureA, and would be interpreted as a friendly behaviour by the profilecorresponding to culture A. The friendliness parameter would then bepassed to a machine set with a machine containing a profilecorresponding to culture B. This machine would generate a differentbehaviour but one which would have the meaning of friendliness inculture B.

In embodiments of the invention arranged for use in a computer gameenvironment, expressive body language can be generated and also inferredfrom the users commands for their character, what the internal state oftheir character is. The user input could be done a number of ways, forexample, as described hereinabove, the user could directly manipulatethe posture of the character. Alternatively, larger scale behaviour canbe used for inference, for example, choice of action, whether to talk tosome one or the words chosen. Once the global parameters for thebehavioural framework have been inferred, the characters in the game canbe made to react to these. Advantageously, the invention provides abehavioural design tool which enables game designers to have finecontrol over the design of the behaviour of the characters usingpowerful yet intuitive tools.

In embodiments of the invention where the object needs to perform arole, the profile a user creates using the design interface can be usedto ensure behaviour is appropriate to the role and that any inference ofinternal state reflects the role of the object whose behaviour isinferred.

Robotic Applications

Whilst the embodiments described above are particularly relevant forvirtual environments, the concept of providing a user with a simpleinput device to interface with a behavioural controller capable ofgenerating complex, on-going behaviour has applications in the realworld, in particular, for example, with robotic toys. Accordingly, otherembodiments of the invention provide a simple mechanism for a user togenerate complex behaviour in a robotic object, particularly anarticulate robotic object, such as a toy doll.

Such embodiments can enable a child, for example, to provide a roboticpet or toy with a sophisticated character whilst requiring onlymanipulation of the intuitive labels assigned to the behaviouralprofiles. In such applications, the behavioural design user interfacemay be provided as a remote control type device. Behavioural controlinformation can then be provided wirelessly to instruct appropriateaction by the robotic device. The behavioural controller may be providedeither as part of the interface device, with animation instructions onlytransmitted to the robotic device, or as part of the robotic deviceitself, or as part of a proxy device which then relays behaviouralinstructions on to the robotic device.

In other embodiments of the invention, robotic devices used inmanufacturing or production line contexts may similarly require theirbehaviour to be controlled using a hierarchical behavioural modelframework such as is described herein, and the behavioural design userinterface may present behavioural options which are more role specificdepending on the task the robotic device is to perform. Such roboticdevices may be controlled remotely either by wired or wirelessconnections depending on their context. For example, in a productionline, the robotic device may be controlled via wired communicationslinks, whereas in an underwater environment, a sub-sea robot may requirea wireless communications link and/or a wired communications link.

Advantageously, the invention provides a simple to use behaviouraldesign interface over complex robotic behaviour, which is particularlyimportant in applications where the robotic object has to perform atime-critical task with some level of autonomous/semi-autonomousbehaviour that requires real-time control by the user.

It will be apparent to those skilled in the art that the invention canbe implemented by an appropriate combination of hardware and/orsoftware, and the combination of hard and software is not intended to belimited by the specific partition described hereinabove. Moreover, it ispossible for the invention to be implemented by a suite of one or morecomputer programs running on one or more devices. The devices may bedistributed across a communications network.

In embodiments of the invention where the behaviour of an entity in avirtual environment is being influenced by the presence of one or moreother entities in the virtual environment, it will also be apparent tothose skilled in the art that it is possible for an aggregate effect ofthe other virtual entities to be determined and for the aggregate effectto be used as high-level input to the behavioural controller of theentity which is then influenced. This can occur even if one or more oreven all of the other entities in the virtual environment which areinfluencing the avatar are not present to an observer of the avatarwhose behaviour is being influenced. For example, if an avatar isteaching a group of other entities, and the other entities indicate theyare bored by their behaviour, the avatar performing the teaching mayadopt more animated behaviour and/or increase their tone variation andloudness to raise the interest of its audience in an autonomous manner.This would enable a user to maintain interest in an on-line meeting forexample, even if the speaker was not able to directly observe all oftheir virtual audience. Typically, an aggregate effect will bedetermining by processing the outputs provided by the behaviouralcontrollers of the other entities according to a processing scheme priorto providing the processed output as input to the behavioural controllerof the entity whose behaviour is being influenced. For example, anaverage parameter value for each output provided by one or more of theother entities may be determined (although not all entities maycontribute to any particular parameter value) prior to being used asinput to the behavioural controller of the entity whose behaviour isbeing influenced by the other entities.

The text of the abstract is reproduced below as part of the description:

A hierarchical behavioural framework is used to generate and controlautonomous and semi-autonomous behaviour in an articulate object. Abehavioural controller is arranged to receive input associated with abehavioural action, to infer a plurality of behavioural parameter valuesusing the framework, and to generate equivalent behaviour in thearticulate object using the parameter values when loaded in thebehavioural controller to generate output corresponding to theequivalent behaviour. The equivalent behaviour may reproduce theinputted behavioural action, and/or comprise one or more otherbehavioural actions, which may be performed simultaneously or as part ofa sequence of actions.

1. A method of generating behavior for an object under the control of abehavioral controller comprising a framework of nodes, said methodcomprising: at least one node being arranged to map its input to provideoutput to other nodes in both a forwards and backwards direction throughsaid framework of nodes and at least one node being arranged to assign aglobal framework parameter value; receiving input associated with one ormore behavioral actions; inferring for a plurality of behavioral nodesin said framework, a behavioral parameter value for each behavioral nodefrom said input in accordance with said behavioral framework; inferringfrom each of said behavioral parameter values, one or more globalparameter values for one or more global parameter nodes in saidframework; mapping said global parameter values in a forwards directionthrough each node of said framework; deriving output from the inferredplurality of behavioral parameter values for behavioral output nodes ofthe behavioral framework; and generating equivalent behavior by theobject using the derived output.
 2. A method as claimed in claim 1,wherein the framework has an internally flexible structure.
 3. A methodas claimed in claim 1, wherein the framework comprises a hierarchy ofbehavioral nodes, at least one behavioral node being arranged to receiveinput from a plurality of differing sources taken from the group of:input provided from one or more output nodes of another framework; inputcomprising a parameter value from another behavioral node; and inputcomprising a global parameter value of the framework indirectly ordirectly provided by a global parameter node.
 4. A method as claimed inclaim 1, wherein the framework is dynamically flexible.
 5. A method asclaimed in claim 1, wherein input received is associated with aplurality of behavioral actions, and each inferred parameter value isdetermined by a combination of said plurality of behavioral actioninputs.
 6. A method as claimed in claim 1, wherein the input comprises aset of at least one behavioral parameter value directly associated withoutput which generates the behavioral action, wherein in the step ofinferring, at least one or more other behavioral parameter values areinferred by performing a reverse map through the framework from whichfurther output is derived to generate additional behavior to thebehavioral action.
 7. A method as claimed in claim 1, wherein saidframework comprises a plurality of behavioral nodes associated with afunction operating on one or more parameter values to provide outputwhich modifies a characteristic of the behavior of the object, whereinthe function operates on at least one global behavioral parameterassociated with a mood state of the object, wherein whereby the behaviorof the object provided by output from an output node of the framework ismodified to indicate the mood the object is in.
 8. A method as claimedin claim 1, wherein the framework comprises a plurality of behavioralnodes associated with a function operating on one or more parametervalues to provide output which modifies a characteristic of the behaviorof the object, wherein the function operates on at least one behavioralparameter value assigned uniquely to a behavioral node of the frameworkand wherein the output generated by a behavioral node of said frameworkfrom said input uses said function to operate on an internal parametervalue associated with a personality trait affecting a characteristic ofthe behavior of the object.
 9. A method as claimed in claim 1, whereinthe equivalent behavior by the object comprises a plurality ofbehavioral actions performed in a predetermined sequence.
 10. A methodas claimed in claim 9, wherein the plurality of behavioral actions areperformed over a period of time.
 11. A method as claimed in claim 9,wherein one or more of said plurality of behavioral actions areperformed simultaneously.
 12. A method as claimed in claim 1 wherein thebehavior includes a behavioral action taken from a group including: eyegaze, limb movement, speech, stance.
 13. A method as claimed in claim 1,wherein the received input is derived from a behavioral action by theobject which has been induced by direct manipulation of the object by ahuman user.
 14. A method as claimed in claim 1, wherein the input isreceived by an input node and is derived from a behavioral action by oneor more other objects interacting with the object.
 15. A method asclaimed in claim 1, wherein the input is received by an input node andincludes input associated with a behavioral action performed by a userof the behavioral controller.
 16. A method as claimed in claim 1,wherein said step of receiving input associated with one or morebehavioral actions comprises: assigning a value to a behavioralparameter set associated with a behavioral characteristic of the objectusing a behavioral design interface arranged to provide input to thebehavioral controller of the object, each said behavioral parameter setcomprising at least one parameter affecting the behavioralcharacteristic; associating each parameter in the parameter set with aparameter value obtained by performing a function on the assigned valuewith a default value defined by a behavioral profile; and inputting theparameter value to the behavioral controller for the object; whereinsaid step of generating equivalent behavioral by the object using thederived output comprises associating the output with a behavioral actionby the object; and causing the object to perform the behavioral action.17. A method as claimed in claim 1, wherein the framework comprises ahierarchy of behavioral nodes, wherein each behavioral node is arrangedto provide output through external output nodes to the input nodes in abehavioral framework of another object and to provide behavioral outputthrough behavioral output nodes enabling the behavior of the object tobe animated.
 18. A behavioral controller arranged to generate behaviorin an object, the controller comprising: a framework of nodes, theframework comprising at least one node arranged to map input to outputin both a forwards and backwards direction through said framework ofnodes, at least one node arranged to assign a global framework parametervalue, and a number of computational nodes for receiving inputassociated with one or more behavioral actions; and wherein theframework is arranged to: infer for a plurality of behavioral nodes insaid framework, a behavioral parameter value for each node from saidinput in accordance with said behavioral framework, infer from each ofsaid behavioral parameter values one or more global parameter values forone or more global parameter nodes in said framework; map said globalparameter values in a forwards direction through each behavioral node ofsaid framework, derive output from the inferred plurality of behavioralparameter values for behavioral output nodes of behavioral framework;and wherein the behavioral controller further comprises an animationsubsystem arranged to generate equivalent behavior by the object usingthe derived output.
 19. A behavioral controller as claimed in claim 18,wherein the animation subsystem is arranged to forward the outputderived from the inferred behavioral parameter values to an animationsystem arranged to operate on the output to cause the appropriatebehavior to be animated by the object.
 20. A behavioral controllercomprising a device arranged to have a suite of at least one computerprogram stored thereon, the suite of at least one computer program beingexecutable on the device so as to cause the device to function as abehavioral controller as claimed in claim
 19. 21. A behavioralcontroller as claimed in claim 18, wherein output from the behavioralcontroller is provided in a form suitable for being received as input bya behavioral controller of another object.
 22. A behavioral controlleras claimed in claim 18, wherein the behavioral controller generates bodylanguage behavior and further comprises a body language translationelement for mapping received input derived from behavioral consistentwith body language of a first culture to input consistent with bodylanguage of a second culture.
 23. A behavioral controller as claimed inclaim 18, wherein the object is a virtual object arranged to operatewithin a virtual environment.
 24. A behavioral controller as claimed inclaim 23, wherein the object is a virtual object arranged to operatewithin a virtual environment is taken from any one of the group ofvirtual environments consisting of: a virtual computer game, a virtualon-line meeting, an on-line game, an on-line chat-room, an avatar hostedmeeting; an avatar counseling meeting; an avatar based mediationenvironment; an avatar based sales environment; an on-line collaborationenvironment; and an on-line customer relationship managementenvironment.
 25. A behavioral controller as claimed in claim 18, whereina software agent provides the input to an apparatus.
 26. A behavioralcontroller as in claim 18, further comprising arranged to allow theassignment of a value to a behavioral parameter set, the parameter setcomprising at least one parameter value associated with a behavioralcharacteristic of the object, wherein the value assigned using theinterface is provided as input to the behavioral controller.